In some circumstances, a computing system can hang or can lockup in such a way that the computing system is completely unresponsive to keyboard or console input. A hang or freeze typically occurs when either a single computer program or the whole computing system ceases to respond to inputs. Many conventional computing systems provide the user with a means to terminate a hung program without rebooting or logging out. However, in most cases, a common way to recover from a system freeze may be to reboot the machines, such as by power cycling with an on/off or reset button.
There are situations where computing systems are supported remotely. For example, a computing system that is non-responsive may be at a customer site and it may be difficult to debug the computing system remotely. There may even be scenarios where debugging a system issue via a console is not feasible or not possible. There are methods for rebooting target machines from a remote computing system, but these methods typically do not allow information to be collected that can be used to diagnose the reasons why the computing system is being unresponsive. In these situations, an administrator may reboot the computing system, hoping that the computing system will be responsive after the reboot.
There are instances where computing systems are non-responsive to console input, but are still responsive to pings on a network interface, such as ICMP echo request packets. Pings are used to test the reachability of a target computing system on an internet protocol (IP) network and to measure the round-trip time for messages sent from the originating computing system to the target computing system. Ping operates by sending Internet Control Message Protocol (ICMP) echo request packets to the target computing system and waiting for an ICMP response. In the process it measures the time from transmission to reception and records any packet loss. The results of the test are printed in the form of a statistical summary of the response packets received, including, for example, the minimum, maximum, and mean rout-trip times. ICMP differs from transport protocols such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) in that ICMP is not typically used to exchange data between systems. Rather, ICMP is typically used to determine availability or existence of a computing system on a network.